package com.example.forum_system.searchEngine.wordList;

import lombok.Data;

import java.util.LinkedList;
import java.util.List;

/**
 * @BelongsProject: 0.forum_system
 * @BelongsPackage: com.example.forum_system.SE
 * @Author : 游在海里的鱼
 * @CreateTime : 2023-11-26  20:17
 * @Version : 1.0
 * @Description : 词索引，每个对象代表：一篇文章下，一个词所在的全部位置。
 */
@Data
public class WordIndex {
    //文章id
    private long articleId;
    //所在位置，因为一个词可能会在同个文章里多次出现，所以可以几种在一个链表中
    private List<Integer> location = new LinkedList<>();


    /*------------------------------------普--通--方--法------------------------------------------------------------------
     * @Desc  : 私有的构造方法
     * @Param : [articleId, location]
     * @Return:
    **/
    private WordIndex(long articleId, int location){
        this.articleId = articleId;
        this.location.add(location);
    }

    /**-----------------------------------类---方---法-------------------------------------------------------------------
     * @Desc  : 生成索引对象的工厂方法
     * @Param : [a, l]
     * @Return: com.example.forum_system.SE.wordList.Index
    **/
    public static WordIndex IndexFactory(int a, int l){
        return new WordIndex(a,l);
    }

    /*------------------------------------普--通--方--法------------------------------------------------------------------
     * @Desc  : 添加词，其实就是添加新的位置
     * @Param : [location]
     * @Return: boolean
    **/
    public boolean add(int location){
        this.location.add(location);
        return true;
    }

}
